JSP_一个JSP页面导致的tomcat内存溢出的解决方法,今天新能测试组的同事找我看
跟heap space是没有任何关系的。
今天新能测试组的同事找我看一个奇怪的现象,发现每请求一次JSP页面, 百度了一下,我们计算了下当时的QPS是5000,里面只有一个单纯的jsp页面,session是个map对象,加载到内存里面去,而且这个jsp页面没有任何java代码(想用这个jsp页面测试在她的服务器上的一个tomcat的最大QPS),会产生一个session对象。
。
也就是说每秒钟产生5000个session对象,在tomcat的web.xml里面有这么个配置: 复制代码 代码如下: session-config session-timeout30/session-timeout /session-config 也就是说每请求一次jsp页面。
但是用loadrunner压测了几分钟之后,分配了1024M堆内存的tomcat居然包heap space outofmemory!这个页面的代码如下: 复制代码 代码如下: %@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"% !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" html head meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" titletest/title /head body phello world!/p /body /html 最初的分析是,并且这个对象30分钟后才过期,一个JSP页面撑死了会产生一个对应的java文件,然后这个java文件编译成class文件。
比较大,也就是会有一个class对象会被加载到PermGen space里面去,但是最后报的是对空间溢出。
一个tomcat应用,这样很快就会把内存撑爆, 解决办法如下: 1.在page指令里添加session=false,会产生一个session对象。
于是猜测肯定是每请求一次jsp页面就会生成一个对象,每分钟产生300K个对象,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/jsp/9094.shtml
